Чтобы усреднить значение переменной, воспользуйтесь формулой экспоненциального скользящего среднего (EMA) с фиксированным окном n.
Создадим пустой прототип, например, Прототип1.
Создадим переменную var1, которая будет случайным образом изменять свои значения 1 раз в секунду:
var1вклПериод1000Хранимое значениеСлучайные значенияСоздадим переменную avg1, которая будет усреднять значения переменной var1:
avg1вклПериод1000Выражениеn=100, a=2/(n+1), (1-a)*$avg1+a*$var1ЗначениеСоздадим узел Узел1 и в свойстве прототип укажем Прототип1.
Сохраним проект и выполним сборку.
Перейдем на Узел1 в интерфейсе, выберем переменные avg1 и var1 и откроем Тренды.
Мы видим, что переменная var1 меняется случайным образом, а переменная avg1 усредняет значения var1.
Переменная avg1 на каждом шаге (по периоду) вычисляет новое значение как взвешенную сумму своего предыдущего значения и нового значения var1. Коэффициент a определяет степень сглаживания.
Размер окна усреднения регулируется переменной n. В нашем примере она равна 100, чо примерно соответствует арифметическому среднему для 100 значений var1. Меняя данное значение можно менять степень сглаживания (большее значение - плавнее, меньшее - резче).
Обратите внимание: обязательно указывайте период опроса, иначе при изменении переменной avg1 она сразу снова начнет пересчет, так как если период не указан, выражение пересчитывается при изменении значений входящих в него переменных.
Также необходимо указать Недостоверно: Значение - чтобы в случае недостоверного значения в var1 значение avg1 не перешло в ошибку и, в сою очередь, не стало причиной нового недостоверного значения.